package main

import "fmt"
/**
aa bb cc三个函数调用的流程
main里边调用aa
aa里边先去调用bb,bb走完走打印
bb被aa调用后，先去调用cc,再去走打印
cc被bb调用后，打印c值，c函数执行完毕
cc执行完毕后，bb里边调用cc的语句完成，然后走bb的打印语句
bb的打印语句执行完成后，bb函数执行完成
bb执行完成后，aa里调用bb函数的语句执行完成，然后走aa的打印语句
aa打印语句完成后，aa函数执行完成，main里边调用aa的语句执行完成
最后走main里边的打印，打印完成，整个程序执行完成
执行结果：
c =  1
b =  2
a =  3
main
 */

func cc(c int)  {
	//c=1
	fmt.Println("c = ", c)
}

func bb(b int)  {
	//b=2
	cc( b -1)
	fmt.Println("b = ", b)
}

func aa(a int)  {
	//a = 3
	bb(a - 1)
	fmt.Println("a = ", a)
}

/**
 * 普通函数的调用流程
 */
func main()  {
	aa(3)
	fmt.Println("main")
}
